diff options
Diffstat (limited to 'src/routes/posts/[slug]/+page.ts')
| -rw-r--r-- | src/routes/posts/[slug]/+page.ts | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/src/routes/posts/[slug]/+page.ts b/src/routes/posts/[slug]/+page.ts new file mode 100644 index 0000000..d0776db --- /dev/null +++ b/src/routes/posts/[slug]/+page.ts @@ -0,0 +1,26 @@ +import { getPost, getPosts } from '$lib/utils/posts'; +import { error } from '@sveltejs/kit'; +import type { PageLoad } from './$types'; + +export const prerender = true; + +// Generate all post routes at build time +export function entries() { + const posts = getPosts(); + return posts.map((post) => ({ slug: post.slug })); +} + +export const load: PageLoad = async ({ params }) => { + const slug = params.slug; + const post = getPost(slug); + + if (!post) { + error(404, `Post not found: ${slug}`); + } + + return { + content: post.default, + metadata: post.metadata, + slug + }; +}; |
